package com.tabnet.servlet;

import java.io.IOException;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.tabnet.beans.produit.GammeProduit;
import com.tabnet.dao.DAOException;
import com.tabnet.dao.DAOFactory;
import com.tabnet.dao.DAOGammeProduit;
import com.tabnet.form.ListeProduitsForm;

public class ListeProduits extends HttpServlet {

	private static final long serialVersionUID = 1L;
	
	public static final String ATT_FORM        		= "form";
    public static final String SESSION_GAMME 		= "gammesProduits";

    public static final String VUE_SUCCES      		= "/WEB-INF/produits.jsp";
    public static final String VUE        			= "/index.jsp";
    
    private DAOGammeProduit _DaoGammeProduit;
    
    public void init() throws ServletException {
        /* Récupération d'une instance de notre DAO Utilisateur */
    	try {
			this._DaoGammeProduit = DAOFactory.getInstance().getGammeProduitDAO();
		}
    	catch (DAOException e) {
			e.printStackTrace();
		}
    }
    
    public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
        
        /* Récupération du client dans la session */
        HttpSession session = request.getSession();
        
        ListeProduitsForm form = new ListeProduitsForm(this._DaoGammeProduit);
        
        Map<String, GammeProduit> mapGammeProduits = form.recupListeGammeProduitDispo(request);        

        request.setAttribute( ATT_FORM, form );
        
        if(form.getErreurs().isEmpty() && mapGammeProduits != null && !mapGammeProduits.isEmpty()) {
        	session.setAttribute( SESSION_GAMME, mapGammeProduits );

	        /* Affichage de la liste des produits */
            this.getServletContext().getRequestDispatcher( VUE_SUCCES ).forward( request, response );
        }
        else {
        	session.setAttribute( SESSION_GAMME, null );
            this.getServletContext().getRequestDispatcher( VUE ).forward( request, response );
        }
    	
    }

    public void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
    	this.doGet(request, response); 	
    }
}
